<?php
//分类控制器类
class CategoryController extends CommonController{
    //保存实例化模型对象
    private $_model;
    //构造函数
    public function __init(){
        $this->_model=K('Category');
    }
    //动作方法
    public function index(){
        $cid=Q('get.cid',0,'intval');
        //左侧顶级分类
        $cateTop=K('Category')->order(' csort ')->get_all_data(array('type_id'=>Q('get.tid',0,'intval'),'pid'=>0));
        //顶级分类的子集（一层），压入到原数组
        foreach ($cateTop as $k => $v) {
            $sonData=$this->_model->all(array('pid'=>$v['cid']));
            $cateTop[$k]['son']=$sonData;
        }
        // p($cateTop);
        $this->assign('catetop',$cateTop);

        //当前分类和子集
        $sonCate=$this->_model->get_son_data($cid);
        $sonCate[]=$cid;
        $sonCate=implode(',',$sonCate);
        $where = ' category_cid in(' . $sonCate . ')';
    	
        //商品记录总数(分页)
        $total=K('Product')->where("{$where}")->count();
        $pageObj = new Page($total,8,6);
        $data=K('Product')->limit($pageObj->limit())->where("{$where}")->all();
        //显示分页
        $page = $pageObj->show();
    	//分配相应的顶级分类数据到视图
    	$this->assign('page',$page);
        
        //如果分类下面没有商品 
        if (!isset($data)) {
           $data=array();
        }
        $this->assign('list',$data);
        //查询相应的类型
        $type=K('Type')->get_one_data(array('type_id'=>Q('get.tid',0,'intval')));
        $this->assign('type',$type);
    	// p($data);

        //获得所有父级(面包屑导航)
        //1获得所有分类
        $cate=$this->_model->get_all_data();
        //2当前分类id
        $son_pid=Q('get.cid',0,'intval');
        //3当前分类的pid   
        if ($son_pid==0) {
            $pid=0;
        }else{
            $cateMes=$this->_model->get_one_data(array('cid'=>$son_pid));
            $pid=$cateMes['pid'];
            $cname=$cateMes['cname'];
        }
        //3查询所有父级
        $father=$this->_model->get_father($cate,$pid);
        $this->assign('father',$father);
        
        //当前分类名
        $this->assign('cname',$cname);
        //显示视图
        $this->dis('category');
    }


    //异步获得子集
        public function ajax_get_son(){
            //判断是否ajax请求
            if (!IS_AJAX) $this->error('非法请求');

            $cid =(int)$_POST['cid'];
            //获得返回数组
            
            $son=$this->_model->all(array('pid'=>$cid));
            // p($son);
            // 返出json
            $this->ajax($son);

        }

}
